1. Field of the Invention
The present invention relates to a knowledge base system comprising frame type or object-oriented type prototype means, inheritance means, attribute description means and procedure method description means. Further, the present invention relates to a shared data management apparatus for editing shared data by using a plurality of tools on a computer terminal by one operator and, more particularly, to a shared data management apparatus for controlling avoidance of collision of shared data alteration by consistency management of the shared data and a plurality of tools.
2. Description of the Related Art
(1) A knowledge base system which can describe knowledge data regarding a large scale complicated entity such as a plant facility or an office business or the like has been realized according to a frame type knowledge representation language or an object-oriented technique.
FIG. 37 shows a configuration of a general knowledge base system. A knowledge base 701 is an aggregate of knowledge (data) based on one certain knowledge representation method. An inference engine 703 is a controller for applying knowledge in the knowledge base, and has a role of determining an applying order of a rule when the knowledge is a rule set. In addition to the two constituents, a user interface 705 for providing a knowledge system to be easily used by a user is provided.
The shared features of the conventional object-oriented data base and the knowledge base system utilizing the same include a distinction of a class of abstract prototype and an instance of concrete data, means for generating the instance from the class, means for describing attribute and procedure in the class and the instance, means for inheriting the attribute and the procedure from a superclass to a subclass, and the like.
When a knowledge base user generates the instance from the class in prior art, the user has conducted a work for executing an instance generating procedure called "a constructor" prepared at each class for a certain designated class. In this case, selection of the class is to be executed by the knowledge base user. In order to generate data for representing data formed of a plurality of element instances called "a plurality of composite instances" such as, for example, an entity like an apparatus having a plurality of components, instances of the entity itself and its component elements are sequentially generated or retrieved, and then the generated and retrieved instances must be correctly related by using attributes. These works are to be conducted manually by the knowledge base user.
However, the conventional above-described method for generating the instances does not still solve following problems of making an instance generating work by the knowledge base user difficult. One of the problems is not easy to select the class, and the other is not easy to set the attribute value.
In order to generate the instances, first which of the classes of the instances is generated must be designated. To this end, it is necessary to previously grasp all the classes prepared in the knowledge base. If many classes exist in the knowledge base, the user who is not skilled for its content is difficult to select a suitable class. The other cause of difficulty of selecting the class is inconsistency of class name in the knowledge base from a word used by the knowledge base user. A plurality of synonyms might correspond to one class as a concept, or even an object described by the same word might has different class to be represented. In order to select a suitable class, the knowledge base user needs to accurately grasp corresponding relationship between the word and the class.
Selection of the class becomes necessary in the case of forming a novel class. In order to form the novel class, first its superclass must be determined. Even in this case, the same problem as above arises.
On the other hand, in the case of forming or altering the instances, a work for setting an attribute value is not easy for the knowledge base user. For example, when a composite instance having a plurality of component elements is generated, it is necessary to clearly understand how to constitute the composite instance by any component instance, how to process so as to obtain the component instance, how to set the component instance as the attribute value of which attribute of the composite instance. When not only the composite instance, but also general instance are formed or altered, it is necessary to skillfully know a method for deriving its attribute value in the work for setting the attribute value, and further its work itself is complicated.
As means for automatically setting the attribute value at the time of generating the instances, a data base system having default value setting means, a knowledge base system have heretofore existed. However, the attribute values to be set by the means are limited to printable values such as numeric values, character rows and the like. For example, a complicated process for setting as the attribute values by deriving data including other instance cannot be executed.
A system for conducting various data manipulations by automatically executing a procedure called "an attached procedure" when the attribute value of the attribute is operated by setting the procedure to the attribute has been heretofore proposed. However, according to this method, it has a disadvantage that data referred by the attached procedure cannot be given explicitly in a form separated from the attached procedure.
A method for automatically setting a derivation procedure of the attribute value by all assembling in the constructor is considered. However, according to this method, a knowledge base designer must prepare its instance generating procedure for all the classes having different attributes. Further, this method has such a disadvantage that, if the attribute of the class is added and altered, the instance generating procedure itself must be corrected and its expandability is poor.
(2) An office business needs to form various documents having different formats for one type of object. It is general to use different input tools to form the documents having different formats. Since management of inconsistency of data is difficult by a method for storing data of the entity with different data formats, it is general to use a method for simultaneously storing data of entities, accessing shared data of the entity from different input tool, converting the shared data of the entity into data adapted for the input tool, editing it to form a document of the required format.
When alterations of a plurality of tools to the same data simultaneously occur by accessing the shared data of the entity by the plurality of the tools, there is a danger of losing consistency of the data. On the contrary, it is general to use a method for locking a request from the input tool by a process for managing an accessing right to the shared data called "a lock" and altering the data only by the tool for obtaining the lock.
However, as number of the input tools for accessing the shared data is increased, a quantity of the data to be stored as shared data is increased, and a data structure is complicated. In this case, the method for managing the shared data which has been proposed as described above has a problem in which disturbance of the lock for the shared data obtained by a certain tool to an accessing to the shared data of other tool frequently occurs, and if a tool user does not effectively edit by sufficiently grasping a state of the lock and the data structure of the shared data, number of contacts with the lock is increased to deteriorate an efficiency of editing work.
(1) As described above, the conventional knowledge base system is extremely difficult, if the user does not skillfully know the structure of the knowledge data, to derive the attribute value to be set when forming or altering novel instance, to select suitable class when forming the instance, to select a suitable superclass in the case of adding novel class to the knowledge base.
(2) The conventional shared data management apparatus as described above has a problem that a phenomenon of disturbance of accessing of other tool to the same data by a lock for the shared data obtained by one tool frequently occurs and if a tool user does not sufficiently grasp and edit a state of a lock and data structure of shared data, number of contacts with the lock is increased, and hence an efficiency of an editing work is deteriorated.